/**
 * @ Author:Yoann Meclot. MSay2
 * @ Created on:2021-06-11 11:56:05
 * @ Modified on: 2021-06-14 18:47:18
 *
 * @version 1.0
 */
/**
 * Copyright (c) 2020-2021 MSay2 (Yoann Meclot) - @msay2/tspoet
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Equalsable } from "../util/Equalsable.js";
/**
 * The ObjectName object allows you to write your own objects or type and/or casts it's with other object(s).
 *
 * Use static fields for write primitive type.
 *
 * @class `ObjectName`
 * @version 1.0
 */
export declare class ObjectName implements Equalsable
{
    /**
     * Primitive type object.
     * @type {ObjectName}
     * @since 1.0
     */
    public static OBJECT:ObjectName;
    
    /**
     * Primitive type string.
     * @type {ObjectName}
     * @since 1.0
     */
    public static STRING:ObjectName;
    
    /**
     * Primitive type boolean.
     * @type {ObjectName}
     * @since 1.0
     */
    public static BOOLEAN:ObjectName;
    
    /**
     * Primitive type number.
     * @type {ObjectName}
     * @since 1.0
     */
    public static NUMBER:ObjectName;
    
    /**
     * Primitive type void.
     * @type {ObjectName}
     * @since 1.0
     */
    public static VOID:ObjectName;
    
    /**
     * Primitive type any.
     * @type {ObjectName}
     * @since 1.0
     */
    public static ANY:ObjectName;
    
    /**
     * Build new object name.
     *
     * @param path The path of file.
     * @param name The name object to be exported.
     * @param listeners For nested classes.
     * @type {ObjectName}
     * @since 1.0
     */
    public static get(path:string, name:string, ...listeners:string[]):ObjectName;
    
    /**
     * Check if the this object equals to object to see
     *
     * @param object The object to see.
     * @type {boolean}
     * @since 1.0
     */
    public equals(object:object):boolean;
        
    /**
     * Use this to cast this ObjectName object.
     *
     * @param objectNames The objects names to be casted with this ObjectName object.
     * @type {ObjectName}
     * @since 1.0
     */
    public cast(...objectNames:ObjectName[]):ObjectName;
        
    private constructor(path:string, name:string, ...listener:string[]);
}
//# sourceMappingURL=ObjectName.d.ts.map